package com.lv.LvTourismOrder.bean;
import javax.persistence.*;

import com.lv.LvTourismModel.bean.LvTourismModel;
import com.lv.LvTourismOrderCustomer.bean.LvTourismOrderCustomer;
import org.hibernate.annotations.GenericGenerator;
import com.aqgj.util.BaseEntity;

import java.util.Date;
import java.util.List;

@Entity
@Table(name = "lv_tourism_order")
public class LvTourismOrder implements BaseEntity{

    private String id;//主键

    private Integer status;//状态：-1.订单取消 0.已下单(待支付), 1.已付款(出票中), 2.订票成功(待出行), 3.订单完成(已出行), 4.退款中, 5.退款成功, 6.退款失败
    private String orderNumber;//订单编号

    private String contactName;//联系人名称

    private String contactPhone;//联系人电话

    private java.math.BigDecimal payBalance;//实际支付金额

    private java.math.BigDecimal orderBalance;//订单金额

    private java.math.BigDecimal refundBalance;//退单金额

    private String refundReason;//退单理由

    private java.util.Date orderTime;//下单时间

    private java.util.Date payTime;//支付时间

    private java.util.Date finishTime;//完成时间

    private java.util.Date refundTime;//退单时间

    private String fkWalletId;//钱包id

    private String fkUserId;//用户id

    private String fkTourismModelId;//旅游模板id

    private String fkTransportId;//公司id

    private java.util.Date tourismForSaleServerDate;//订单所关系在线旅游产品的日期

    private String tourismPriceComboComment;//旅游套餐说明

    private String startSiteName;//起点名称

    private String startSiteAddress;//起点地址

    private String terminalSiteName;//终点名称

    private String terminalSiteAddress;//终点地址

    private Integer allowIncreaseGuestRoom;//是否加房：0.否1.是

    private java.math.BigDecimal guestRoomPrice;//加房价格

    private Integer guestRoomQuantity;//加房数量

    private String aliPayParams;//支付宝支付参数

    private java.lang.Integer isHandle;//订单是否处理(0-未处理 1-已处理)

    private java.util.Date handleTime;//处理时间（可提现金额）

    private String wxJsPayPrepayId; //微信公众号支付预支付标识

    private String wxAppPayPrepayId;// 微信App支付预支付标识

    private String fkPriceComboId;

    private Integer payMode;// 支付方式：1:微信APP支付 2:微信公众号支付 3:微信H5支付 4:支付宝APP支付 5:支付宝H5支付 6.余额支付

    private LvTourismModel lvTourismModel;

    private List<LvTourismOrderCustomer> lvTourismOrderCustomers;

    public void setId(String value){
        this.id = value;
    }
    public void setStatus(Integer value){
        this.status = value;
    }
    public void setOrderNumber(String value){
        this.orderNumber = value;
    }
    public void setContactName(String value){
        this.contactName = value;
    }
    public void setContactPhone(String value){
        this.contactPhone = value;
    }
    public void setPayBalance(java.math.BigDecimal value){
        this.payBalance = value;
    }
    public void setOrderBalance(java.math.BigDecimal value){
        this.orderBalance = value;
    }
    public void setRefundBalance(java.math.BigDecimal value){
        this.refundBalance = value;
    }
    public void setRefundReason(String value){
        this.refundReason = value;
    }
    public void setOrderTime(java.util.Date value){
        this.orderTime = value;
    }
    public void setPayTime(java.util.Date value){
        this.payTime = value;
    }
    public void setFinishTime(java.util.Date value){
        this.finishTime = value;
    }
    public void setRefundTime(java.util.Date value){
        this.refundTime = value;
    }
    public void setFkWalletId(String value){
        this.fkWalletId = value;
    }
    public void setFkUserId(String value){
        this.fkUserId = value;
    }
    public void setFkTourismModelId(String value){
        this.fkTourismModelId = value;
    }
    public void setFkTransportId(String value){
        this.fkTransportId = value;
    }
    public void setTourismForSaleServerDate(java.util.Date value){
        this.tourismForSaleServerDate = value;
    }
    public void setTourismPriceComboComment(String value){
        this.tourismPriceComboComment = value;
    }
    public void setStartSiteName(String value){
        this.startSiteName = value;
    }
    public void setStartSiteAddress(String value){
        this.startSiteAddress = value;
    }
    public void setTerminalSiteName(String value){
        this.terminalSiteName = value;
    }
    public void setTerminalSiteAddress(String value){
        this.terminalSiteAddress = value;
    }
    public void setAllowIncreaseGuestRoom(Integer value){
        this.allowIncreaseGuestRoom = value;
    }
    public void setGuestRoomPrice(java.math.BigDecimal value){
        this.guestRoomPrice = value;
    }
    public void setGuestRoomQuantity(Integer value){
        this.guestRoomQuantity = value;
    }
    public void setAliPayParams(String aliPayParams) {
        this.aliPayParams = aliPayParams;
    }
    public void setIsHandle(Integer isHandle) {
        this.isHandle = isHandle;
    }
    public void setHandleTime(Date handleTime) {
        this.handleTime = handleTime;
    }
    public void setWxJsPayPrepayId(String wxJsPayPrepayId) {
        this.wxJsPayPrepayId = wxJsPayPrepayId;
    }
    public void setWxAppPayPrepayId(String wxAppPayPrepayId) {
        this.wxAppPayPrepayId = wxAppPayPrepayId;
    }
    public void setPayMode(Integer payMode) {
        this.payMode = payMode;
    }
    public void setFkPriceComboId(String value){
        this.fkPriceComboId = value;
    }
    public void setLvTourismModel(LvTourismModel lvTourismModel) {
        this.lvTourismModel = lvTourismModel;
    }
    public void setLvTourismOrderCustomers(List<LvTourismOrderCustomer> lvTourismOrderCustomers) {
        this.lvTourismOrderCustomers = lvTourismOrderCustomers;
    }
    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    @Column(name ="id",unique=true,nullable=false,insertable=true,updatable=true,length=32)
    public String getId(){
        return this.id;
    }
    @Column(name ="status",unique=false,nullable=true,insertable=true,updatable=true,length=10)
    public Integer getStatus(){
        return this.status;
    }
    @Column(name ="order_number",unique=false,nullable=true,insertable=true,updatable=true,length=32)
    public String getOrderNumber(){
        return this.orderNumber;
    }
    @Column(name ="contact_name",unique=false,nullable=true,insertable=true,updatable=true,length=10)
    public String getContactName(){
        return this.contactName;
    }
    @Column(name ="contact_phone",unique=false,nullable=true,insertable=true,updatable=true,length=18)
    public String getContactPhone(){
        return this.contactPhone;
    }
    @Column(name ="pay_balance",unique=false,nullable=true,insertable=true,updatable=true,length=10)
    public java.math.BigDecimal getPayBalance(){
        return this.payBalance;
    }
    @Column(name ="order_balance",unique=false,nullable=true,insertable=true,updatable=true,length=10)
    public java.math.BigDecimal getOrderBalance(){
        return this.orderBalance;
    }
    @Column(name ="refund_balance",unique=false,nullable=true,insertable=true,updatable=true,length=10)
    public java.math.BigDecimal getRefundBalance(){
        return this.refundBalance;
    }
    @Column(name ="refund_reason",unique=false,nullable=true,insertable=true,updatable=true,length=512)
    public String getRefundReason(){
        return this.refundReason;
    }
    @Column(name ="order_time",unique=false,nullable=true,insertable=true,updatable=true,length=0)
    public java.util.Date getOrderTime(){
        return this.orderTime;
    }
    @Column(name ="pay_time",unique=false,nullable=true,insertable=true,updatable=true,length=0)
    public java.util.Date getPayTime(){
        return this.payTime;
    }
    @Column(name ="finish_time",unique=false,nullable=true,insertable=true,updatable=true,length=0)
    public java.util.Date getFinishTime(){
        return this.finishTime;
    }
    @Column(name ="refund_time",unique=false,nullable=true,insertable=true,updatable=true,length=0)
    public java.util.Date getRefundTime(){
        return this.refundTime;
    }
    @Column(name ="fk_wallet_id",unique=false,nullable=true,insertable=true,updatable=true,length=32)
    public String getFkWalletId(){
        return this.fkWalletId;
    }
    @Column(name ="fk_user_id",unique=false,nullable=true,insertable=true,updatable=true,length=32)
    public String getFkUserId(){
        return this.fkUserId;
    }
    @Column(name ="fk_tourism_model_id",unique=false,nullable=true,insertable=true,updatable=true,length=32)
    public String getFkTourismModelId(){
        return this.fkTourismModelId;
    }
    @Column(name ="fk_transport_id",unique=false,nullable=true,insertable=true,updatable=true,length=32)
    public String getFkTransportId(){
        return this.fkTransportId;
    }
    @Column(name ="tourism_for_sale_server_date",unique=false,nullable=true,insertable=true,updatable=true,length=0)
    public java.util.Date getTourismForSaleServerDate(){
        return this.tourismForSaleServerDate;
    }
    @Column(name ="tourism_price_combo_comment",unique=false,nullable=true,insertable=true,updatable=true,length=512)
    public String getTourismPriceComboComment(){
        return this.tourismPriceComboComment;
    }
    @Column(name ="start_site_name",unique=false,nullable=true,insertable=true,updatable=true,length=32)
    public String getStartSiteName(){
        return this.startSiteName;
    }
    @Column(name ="start_site_address",unique=false,nullable=true,insertable=true,updatable=true,length=32)
    public String getStartSiteAddress(){
        return this.startSiteAddress;
    }
    @Column(name ="terminal_site_name",unique=false,nullable=true,insertable=true,updatable=true,length=32)
    public String getTerminalSiteName(){
        return this.terminalSiteName;
    }
    @Column(name ="terminal_site_address",unique=false,nullable=true,insertable=true,updatable=true,length=32)
    public String getTerminalSiteAddress(){
        return this.terminalSiteAddress;
    }
    @Column(name ="allow_increase_guest_room",unique=false,nullable=true,insertable=true,updatable=true,length=10)
    public Integer getAllowIncreaseGuestRoom(){
        return this.allowIncreaseGuestRoom;
    }
    @Column(name ="guest_room_price",unique=false,nullable=true,insertable=true,updatable=true,length=10)
    public java.math.BigDecimal getGuestRoomPrice(){
        return this.guestRoomPrice;
    }
    @Column(name ="guest_room_quantity",unique=false,nullable=true,insertable=true,updatable=true,length=10)
    public Integer getGuestRoomQuantity(){
        return this.guestRoomQuantity;
    }
    @Column(name = "ali_pay_params", unique = false, nullable = true, insertable = true, updatable = true)
    public String getAliPayParams() {
        return aliPayParams;
    }
    @Column(name = "is_handle", unique = false, nullable = true, insertable = true, updatable = true, length = 2)
    public Integer getIsHandle() {
        return isHandle;
    }
    @Column(name = "handle_time", unique = false, nullable = true, insertable = true, updatable = true, length = 0)
    public Date getHandleTime() {
        return handleTime;
    }
    @Column(name = "wx_js_pay_prepay_id", unique = false, nullable = true, insertable = true, updatable = true, length = 128)
    public String getWxJsPayPrepayId() {
        return wxJsPayPrepayId;
    }
    @Column(name = "wx_app_pay_prepay_id", unique = false, nullable = true, insertable = true, updatable = true, length = 128)
    public String getWxAppPayPrepayId() {
        return wxAppPayPrepayId;
    }
    @Column(name = "pay_mode", unique = false, nullable = true, insertable = true, updatable = true, length = 4)
    public Integer getPayMode() {
        return payMode;
    }
    @Column(name ="fk_price_combo_id",unique=true,nullable=false,insertable=true,updatable=true,length=32)
    public String getFkPriceComboId(){
        return this.fkPriceComboId;
    }
    @Transient
    public LvTourismModel getLvTourismModel() {
        return lvTourismModel;
    }
    @Transient
    public List<LvTourismOrderCustomer> getLvTourismOrderCustomers() {
        return lvTourismOrderCustomers;
    }
}
